home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 1.iso
/
ARGONET
/
PD
/
COMMS
/
IRCSERVE.ZIP
/
!IRServer
/
!Help
< prev
next >
Wrap
Text File
|
1996-10-18
|
10KB
|
267 lines
IRServer - an IRC Server
========================
Version 1.09 (12 Oc 1996)
Introduction
------------
This is a very simple IRC Server which I have written solely for local use
whilst developing the somewhat enhanced version of the IRClient scripts.
It provides simple support for the majority of RFC1459 (included) with some
notable exceptions.
Usage
-----
Run the server. The actual application will do nothing but sit there
until you connect to it on port 6667.
Supported
---------
The following are supported :
USER registration
NICK changing
AWAY setting
QUITing
JOINing channels
PARTing channels
MOTD (message of the day)
LUSERS (local users)
LIST of channels
NOTICEs
ISON checking
MODE changing/viewing :
Channels : opsitnm
Users : iosw
OPER command (password defined in Options file)
KICK users off channels
ADMIN information
INFO on server
VERSION of server
TIME at the server
SQUIT locally only (param is seconds delay, NOT server name)
TOPIC changing/viewing on channels
PRIVMSGs (normal chatting, inc on channels)
SUMMON local users (pops up a window asking you to accept/deny summoning)
WHOIS a user
WHOWAS a user who has left
PING will be given after a period, and will respond with PONG if received
PONG is ignored, except to reset timer (correctly)
KILL a nickname
Host name lookup is performed (this is slow over dialup)
Unsupported
-----------
MODE changing/viewing :
Channels:
l unsupported
k unsupported
b unsupported
v unsupported
others have no effect, except o
Users:
i has no effect
w has no effect
Local channels (& channels)
WHOIS only deals with a single user (no wildcards)
INVITE onto channels
LIST particular channels and/or server
STATS on server config file - would be pretty pointless…
SERVER connections
LINKS to the server - would be pretty pointless…
CONNECT to other servers - would be pretty pointless…
TRACE routings to other servers
ERROR between servers (!)
Multiple recipients/nicks/channels at any point
WHO in any form
REHASH the server config file - no such thing !
RESTART the server - why bother...
USERHOST checking
USERS checking
WALLOPS - not usually enabled anyhow
No ident is performed.
How it works
------------
I've used the JFShared library for the simple wimp stuff and some handling.
However, the majority of the work is done by the (now released) SocketLib.
This allows my to put together socket applications in much the same amount of
time it takes for a desktop application. I can probably get a raw socket
connection working in about 20-30 minutes now from within a desktop program.
That is the thing that makes JFShared worthwhile at my end and the fact that
you only need one copy of it makes it worthwhile at your end.
Bugs
----
There ARE bugs in this server. Do NOT expect it work exactly as a 'real' IRC
server. The main bug I've found is that it is entirely possible to overrun
the space allocated for socket buffers using a dial-up connection. Why this
should be is something I am looking into but have yet to fix. It usually dies
with Not a heap block in HeapLib and the only way to exit is by using
Ctrl-Shift-Q whilst clicking on a button (a 'feature' of JFShared).
One thing you should watch for is the generation of strings that are too
long. This is vrey easy to do in normal usage, and as soon as an error occurs
in processing one users input it will from then on ignore that user. I found
this by trying /ctcp gerph version with the latest copy of Magrathea.
Files
-----
The files within the IRServer directory contain certain useful information
which you may wish to change if you are really bothered :
Admin : The administrative information
You should only change the second line onwards.
Loc1: The physical location of the server
Loc2: More about the location or info
Email: An email contact for the person running the server
Motd : The message of the day which is dumped when you connect
Usually I copy shortmotd to motd whilst I'm debugging, but
for real usage you /must/ really use the longmotd message
or something similar.
RFC1459: The RFC detailing the IRC specification
Log : The log of major events occuring in the server itself
This can be enabled with the Debug option, and from the Options
file.
Options: Your user options - you should change this to suit your setup.
Desktop appearance of IRC
-------------------------
Currently there is no 'real' IRC on the desktop. To use IRC from the desktop
you might as well use IRClient as it is MUCH better than anything I could
ever hope to write. Plus with my nice new(ish) scripts you can do all manner
of wierd and wonderfull things (well some stuff anyhow).
The only interface I have currently available is the user list. If you click
on the iconbar icon a window will appear listing all the users and the
channels they are on. This will be updated and resized in real time as the
users do 'things'. The @ symbol preceeds any user who is an IRC operator, and
any channels of which the user is an operator.
You can disable the IRC Server temporarily (if for example you want to FTP
something and don't want a large load (!) ) by clicking the Suspend menu
option. On re-enabling ALL the waiting commands from clients will be dealt
with. This may result in delay whilst the server processes these and chucks
the responses back out again.
Multiplexing
------------
This client does not multiplex. There are good reasons for this. One of them
is the fact that it's awkward. Due to the time limiting (use of PING and
PONG) I have also disabled the MOTD multiplexing which now slows things down
quite a bit really. Hopefully I'll think up a way around this.
Configuration
-------------
Configuration of IRClient is by means of Config+, an application I've been
working on for quite some time now. This allows you to have a consistant
interface to configuration routines and to not include the code in the actual
application, thus cutting down overheads on what it usually a once only job.
If you haven't got Config+ you'll need to download it from my web site or
Arcade.
<BasicLibrary$File>
-------------------
This application requires Justin Fletcher's JFShared library to function.
This can be obtained from Arcade and possibly other bulletin boards. I have
seen QuickHelp on Digital Databank, so it is possible that JFShared exists
there also. JFShared is also currently being carried by Hensa and can be
obtained from Justin's website.
Compatibility
-------------
This application has been tested on the author's A5000, but due to the lack
of friends with Acorns has not been tested on other systems. Therefore, it
ought to work on any RO3.1 machine, and with a RO2 machine if it is
recognised in JFShared and uses no specific RO3 features. I've used the Acorn
Internet stuff to get it running using local loopback.
Disclaimer
----------
The author accepts no responsibility for any problems which this application
may cause or loss of data resulting in its use. This application is Public
Domain. This means that it may be distributed, so long as no charge other
than copying costs are charged for it.
Contact
-------
Any comments, queries, donations or bug reports can be sent to Justin
Fletcher at :
E-Mail : Gerph@essex.ac.uk
URL : http://prompt.essex.ac.uk/users/gerph
IRC : On #Acorn as Gerph
Finger : finger jrflet@postman.essex.ac.uk
Tel : (01842) 813979 (Home)
Snail Mail :
Justin Fletcher
“Galadriel”
17b Cromwell Road,
Weeting,
Brandon,
Suffolk.
IP27 0QT
History
-------
Version 1.01 : 17 Jul 1996
First release to Alex Howarth.
No support for AWAY or op priviledges
Version 1.02 : 05 Aug 1996
Minor bug fixes and op privs added
AWAY added.
SUMMON added.
TIME added.
Version 1.03 : 06 Aug 1996
Cosmetic changes :
Now able to disable server from menu option
List of current users added, and updated in real time
Massive changes to the !Help file to document what I've done.
Version 1.04 : 09 Aug 1996
Status window added
Checking for closed connectioned (finally !)
Options file added for added customisation (but not much :-) )
Moved all sockets code into JFShared where it was intended to
go after it was 'finished'.
Tested over serial linked Arcs
Will now search for port over the next five until it finds one
to use.
WHOIS and WHOWAS added
Version 1.05 : 13 Aug 1996
PING and PONG added
KILL added
Time-outs for users (with PING and PONG and using connection
closed) added
Logging made more sensible
Many bug fixes to SocketLib should mean that IRServer is
now quite stable.
Version 1.06 : 20 Aug 1996
Configuration via Config+ added (come on download it now !)
Version 1.07 : 10 Sep 1996
The NICK command was giving complete rubbish (channel names)
now fixed, but other commands may suffer :-(
Version 1.08 : 27 Sep 1996
Will require InetServices if using SocketLib v1.03 (JFShared
v2.35)
Version 1.09 : 12 Oct 1996
Requires SysLog by Jon Ribbens